This invention relates to a system and method for disabling and re-enabling peripheral devices (PDs) containing a device-configuration-space through hardware by controlling device-configuration-space-access-signals (DCSASs) to the PDs using system Input/Output (I/O) registers. The invention advantageously permits users to disable and re-enable user-selected onboard PDs, such as video controllers or Small Computer System Interface (SCSI) controllers. Users may, for example, wish to substitute another PD in place of a particular PD provided by the computer manufacturer. In other cases, users may wish to disable a particular PD either temporarily or indefinitely.
At the present time, several computer manufacturers provide a user-initiated software method of disabling PDs. The software that accomplishes disablement of PDs is typically found in the Basic Input/Output System (BIOS) memory of a computer system. (BIOS is the firmware in a personal computer that interfaces directly with the hardware to perform I/O and other low-level functions. Typically this firmware is permanently stored in Read Only Memory or flash memory on the computer system's motherboard.) Subsequently, when the computer system is powered on, the system's Power On Self Test (POST) is executed. During POST, software contained in BIOS memory determines which PDs are disabled. Upon determining that a particular PD is disabled, the BIOS software does not initialize and execute the Read-Only Memory (ROM) associated with that device. However, a configuration space for each onboard PD is still accessible to system software, including operating system software. This configuration space remains accessible because typical peripheral device/bus standards do not recognize disablement of PDs by BIOS software.
As operating system software has become increasingly sophisticated, there has developed a clear trend toward automatically configuring all devices attached to the computer system, including PDs. Certain recent generations of operating systems--e.g., Microsoft Windows NT, and the Microsoft Windows 95 product--are likely to continue this trend. Specifically, the operating system software will endeavor to detect all accessible hardware associated with a computer system. The operating system software will detect and have access to the disabled PD's configuration space and possibly attempt to initialize it. Thus, despite a user's express request to disable a particular PD, the operating system software will detect the PD's configuration space and re-activate it.
Therefore, what is needed is a hardware-based method for disabling the PDs of a computer system to avoid the problem of operating system software detecting disabled PDs and initializing them in contravention of a user's requests.